package app.services.impl;

import java.util.List;

import app.models.Funcionario;
import app.repositories.FuncionarioRepository;
import app.repositories.Repository;
import app.services.FuncionarioService;
import br.com.caelum.vraptor.ioc.Component;

@Component
public class FuncionarioServiceImpl extends GenericServiceImpl<Funcionario, Long> implements FuncionarioService {

	private final FuncionarioRepository repository;
	
	public FuncionarioServiceImpl (FuncionarioRepository repository){
		this.repository = repository;
		super.setGenericRepository((Repository<Funcionario, Long>) repository);
	}
	
	
	public List<Funcionario> findAllOrdered() {
		return repository.findAllOrdered();
	}

	public List<Funcionario> findLastRegistered() {
		return repository.findLastRegistered();
	}

	public List<Funcionario> findByNameOrCpf(String nome, String cpf) {
		return repository.findByNameOrCpf(nome, cpf);
	}

	public List<Funcionario> findAllEspecialistas() {
		return repository.findAllEspecialistas();
	}

	public List<Funcionario> findAllSecretary() {
		return repository.findAllSecretary();
	}

	public List<Funcionario> findAllEspecialistasByEspecialidade(Integer especialidadeId) {
		return repository.findAllEspecialistasByEspecialidade(especialidadeId);
	}

	public List<Funcionario> findByFilter(String filter) {
		return repository.findByFilter(filter);
	}

	public Funcionario findByUserId(Long userId) {
		return repository.findByUserId(userId);
	}

	public List<Funcionario> findEspecialistasByEspecialidade(Long idEspecialidade) {
		return repository.findEspecialistasByEspecialidade(idEspecialidade);
	}

}